{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from tbcontrol import blocksim" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Dead time reduces control performance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's first build a standard control loop with a disturbance.\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll use the system and simulate the control performance with and without deadtime.\n", "$K_m=G_c=G_m=1$ and $$G_p = G_d = \\frac{e^{-\\theta s}}{(5s + 1)(3s + 1)}$$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "inputs = {'ysp': blocksim.step(),\n", " 'd': blocksim.step(starttime=40)}" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "sums = {'y': ('+yu', '+yd'),\n", " 'e': ('+ysp', '-y'),\n", " }" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the dead time free system, we can use a high gain PI controller" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def Gp(name, input, output, theta):\n", " return blocksim.LTI(name, input, output,\n", " 1, numpy.convolve([5, 1], [3, 1]), delay=theta)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "Gp1 = Gp('Gp', 'p', 'yu', 0)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "Gc1 = blocksim.PI('Gc', 'e', 'p', \n", " 3.02, 6.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the system with dead time we need to detune the controller" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "Gp2 = Gp('Gp', 'p', 'yu', 2)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "Gc2 = blocksim.PI('Gc', 'e', 'p', \n", " 1.23, 7)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "Gd = Gp('Gd', 'd', 'yd', 2)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "diagrams = {'No dead time': blocksim.Diagram([Gp1, Gc1, Gd], sums, inputs),\n", " 'Dead time': blocksim.Diagram([Gp2, Gc1, Gd], sums, inputs),\n", " 'Dead time detuned': blocksim.Diagram([Gp2, Gc2, Gd], sums, inputs)\n", " }" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "ts = numpy.linspace(0, 80, 2000)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "outputs = {}" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for description, diagram in diagrams.items():\n", " lastoutput = outputs[description] = diagram.simulate(ts)\n", " plt.plot(ts, lastoutput['y'], label=description)\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Smith Predictor" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Smith predictor or dead time compensator uses a dead time free model to do most of the control ($\\widetilde{G}^*$} and then subtracts the delayed prediction from the measurement to react only on the unhandled dynamics." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "sums = {'y': ('+yd', '+yu'),\n", " 'y-ytilde2': ('-ytilde2', '+y'),\n", " 'e': ('+ysp', '-y-ytilde2'),\n", " 'eprime': ('+e', '-ytilde1'),\n", " }" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll use the dead time containing model from before" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "G = Gp2\n", "G.name = 'G'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But the controller which was tuned on the dead time free model" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "Gc = Gc1\n", "Gc.inputname = 'eprime'" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "Gtildestar = blocksim.LTI('Gtildestar', 'p', 'ytilde1',\n", " 1, numpy.convolve([5, 1], [3, 1]))" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "delay = blocksim.Deadtime('Delay', 'ytilde1', 'ytilde2', 2)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "blocks = [Gc, G, Gd, Gtildestar, delay]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PI: eprime →[ Gc ]→ p\n", "LTI: p →[ G ]→ yu\n", "LTI: d →[ Gd ]→ yd\n", "LTI: p →[ Gtildestar ]→ ytilde1\n", "Deadtime: ytilde1 →[ Delay ]→ ytilde2" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diagram = blocksim.Diagram(blocks, sums, inputs)\n", "diagram" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "outputs['Smith compensator'] = diagram.simulate(ts)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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EZTngm8v4MLN1IH+A1szREVp13bu3MnatWvZu3cvjo6O5ObmUlVVZfXxQUFBrFq1CjAl94SEBK677rqWCrfdW758OdHR0QQFBTW+cw2DwYBWa6aUuxmsqnOXUv4opYyUUvaSUr5S89z8msSOlHK8lDJQSjm45qtVEzvAmbwyQr1dsNOaeUl5piHM+JiS+77sfQS5BhHgEtCKESpK+5aZmYmfn1/tHCx+fn61iSk8PJznn3+e4cOHExsby969e5k0aRK9evVi8eLFAJw+fZro6GizU/ECJCYmcvXVVxMREcHbb79tNob169czdOhQBg0axLhx4wDTVAU333xz7QjSgwdNjbOXXnqJ+++/n4kTJxIeHs7q1at5+umnGThwIJMnT0av19fG/swzzxAfH098fHztVAM5OTncdtttxMXFERcXx/bt22vPO3PmzHqxlpWVcf311zNo0HfqTSkAABJbSURBVCCio6NrX9eCBQuIi4sjOjqa2bNnI6Vk1apVJCQkMHXqVAYPHkxFRQU///wzQ4YMYeDAgcycOZPKysra+BYsWMDIkSP5+uuvbfb/2WkmDjuVW064XwNdMgC+vZBSkpCVwKiQUa0XnKI01bpnIeuQbc/ZbSBca3mVookTJ7JgwQIiIyMZP348d911F2PGXKiNCA0NZefOncybN48ZM2awfft2dDodAwYM4OGHH67dz9xUvC+99BJHjx7ll19+oaSkhKioKObMmYO9/YWChpycHGbNmsXWrVvp2bMn+fn5gGlKgyFDhvDdd9+xadMmpk+fzv79+wE4ceIEv/zyC4mJiQwfPpxvvvmGN954g1tuuYUffviBm2++GTDNdPn777/z6aef8uSTT7J27VqeeOIJ5s2bx8iRIzl79iyTJk0iKck035S5WNevX09QUBA//PADAEVFRYBpKuTzUwRPmzaNtWvXcvvtt/POO++wcOFCYmNj0el0zJgxg59//pnIyEimT5/O+++/z5NPPgmYplv49ddfL+M/t75OMbeMlJIzeWX08LVQKXO+5e4dzonCExRUFhAb2OjoXUXpUtzc3NizZw9Llvx/e+cfVFW57vHPI6CAIJwCjMIueAsJ27jFBNEOkhnoyehUNprmmHM0ndJ7zr1X8lBn0pppTo138hytsZyT6Ok26VxvijV2Q0rU1FRQK9EQTSx/BEiBYmrAfu8fa7EC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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for description in ['No dead time', 'Smith compensator', 'Dead time detuned']:\n", " plt.plot(ts, outputs[description]['y'], label=description)\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the Smith Predictor gives us almost the same performance as the dead time free system, but that it cannot entirely compensate for the delay in the disturbance output because it doesn't have an undelayed measurement of it. It still does better on the disturbance rejection than the detuned PI controller we had to settle for with the dead time." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }